﻿//#include <stdio.h>
//#include <stdlib.h>
//typedef struct List {
//    int data;
//    struct List* next;
//}List;
//List* Creat() {
//    List* head = 0, * node = 0, * front = 0, * last = 0;
//    head = node = (List*)malloc(sizeof(List));
//    fscanf(stdin, "%d", &head->data);
//    if (head->data == -1) {
//        return NULL;
//    }
//    while (node->data != -1) {
//        front = (List*)malloc(sizeof(List));
//        fscanf(stdin, "%d", &front->data);
//        node->next = front;
//        last = node;
//        node = front;
//    }
//    last->next = 0;
//    free(node);
//    return head;
//}
//List* Sort(List* L1, List* L2) {
//    if (!L1) {
//        return L2;
//    }
//    if (!L2) {
//        return L1;
//    }
//    List* node = 0, * head = 0, * last = 0;
//    if (L1->data < L2->data) {
//        head = L1;
//        L1 = L1->next;
//    }
//    else {
//        head = L2;
//        L2 = L2->next;
//    }
//    node = head;
//    while (L1 && L2) {
//        if (L1->data < L2->data) {
//            last = L1;
//            L1 = L1->next;
//            node->next = last;
//            node = last;
//        }
//        else {
//            last = L2;
//            L2 = L2->next;
//            node->next = last;
//            node = last;
//        }
//    }
//    if (!L1) {
//        node->next = L2;
//    }
//    if (!L2) {
//        node->next = L1;
//    }
//    return head;
//}
//void Print(List* L) {
//    if (!L) {
//        fprintf(stdout, "NULL\n");
//    }
//    while (L) {
//        if (!L->next) {
//            fprintf(stdout, "%d\n", L->data);
//            break;
//        }
//        fprintf(stdout, "%d ", L->data);
//        L = L->next;
//    }
//}
//int main() {
//    List* L1 = Creat();
//    List* L2 = Creat();
//    List* L = Sort(L1, L2);
//    Print(L);
//}

//符号注意的补充
//#include<stdio.h>
//int main() {
//	int a = 5;
//	fprintf(stdout, "%+03d", a);//输出+05，一共三位，包括符号'+'
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//typedef struct List {
//    int Data;
//    int Address;
//    int Next;
//    struct List* next;
//}List;
//int n = 0;
//List* Sort(List* head, int* nums) {
//    int x = n, i = 0;
//    List* node = head;
//    while (node) {
//        if (nums[i] == node->Address) {
//            nums[++i] = node->Next;
//            node = head;
//            if (i == n - 1) {
//                break;
//            }
//            continue;
//        }
//        node = node->next;
//    }
//    List* Node = 0, * Head = 0, * Front = 0;
//
//}
//int main() {
//    int Address = 0, Data = 0, Next = 0;
//    List* head = 0, * node = 0, * front = 0;
//    fscanf(stdin, "%d%d", &Address, &n);
//    int* nums = (int*)malloc(sizeof(int) + n);
//    nums[0] = Address;
//
//    fscanf(stdin, "%d%d%d", &Address, &Data, &Next);
//    head = node = (List*)malloc(sizeof(List));
//    node->Address = Address;
//    node->Data = Data;
//    node->Next = Next;
//
//    int x = n;
//    while (--x) {
//        fscanf(stdin, "%d%d%d", &Address, &Data, &Next);
//        front = (List*)malloc(sizeof(List));
//        front->Address = Address;
//        front->Data = Data;
//        front->Next = Next;
//        node->next = front;
//        node = front;
//    }
//    node->next = head;
//    List* L = Sort(head, nums);
//
//    return 0;
//}